extends VBoxContainer

@export var stats:Stats
@onready var hpBar=$%HpBar
@onready var expBar=$%ExpBar
@onready var coin=$%Coin

# 信号绑定处理函数
func _ready() -> void:
	# 本页面不暂停
	process_mode=Node.PROCESS_MODE_ALWAYS
	stats.hpChanged.connect(updateHp)
	updateHp()
	stats.expChanged.connect(updateExp)
	updateExp()
	stats.goldChanged.connect(updateCoin)
	updateCoin()
	stats.levelUp.connect(updateLevel)
	updateLevel()

func updateHp()->void:
	var percent:=stats.hp/float(stats.maxHp)
	create_tween().tween_property(hpBar,'value',percent,0.3)
	hpBar.get_node('Value').text=str(stats.hp) +'/'+str(stats.maxHp)

func updateExp()->void:
	var percent=(stats.curExp)/float(stats.levelExp)
	create_tween().tween_property(expBar,'value',percent,0.3)

func updateCoin()->void:
	coin.get_node('Value').text=str(stats.gold)
	pass

func updateLevel()->void:
	expBar.get_node('Value').text='LV.'+str(stats.level)
